const baseUrl = "http://localhost:8090"  //后端访问地址

// 封装请求方法
const request = (config) => {
	config.url = config.url || ''; // 请求路径
	config.method = config.method || 'GET'; //请求方式
	config.data = config.data || {}; //请求携带的数据
	config.header = config.header || 'application/json'; //请求头信息 content-type
	config.loading = config.loading === false ? false : true; //是否显示请求加载中
	config.requestTime = config.requestTime || 500; //多久时间内完成网络请求，则不显示提示框
	let loadingStatus = true;
	//定义网络请求如果在一定时间内没有完成，则显示加载中提示框，默认时间为：500毫秒
	setTimeout(() => {
		if (loadingStatus && config.loading) {
			uni.showLoading({
				title: "加载中",
				mask: true
			})
		}
	}, config.requestTime)
	//返回Promise对象
	return new Promise((resolve, reject) => {
		uni.request({
			url: baseUrl + config.url,
			method: config.method,
			data: config.data,
			header: {
				'Content-Type': config.header
			},
			success: res => {
				const result = res.data;
				if (result.code == 200) {
					resolve(result);
				}
			},
			fail: err => {
				uni.showToast({
					title: '系统繁忙',
					position: 'top',
					icon: 'none',
					duration: 3000
				});
				reject(err);
			},
			complete: () => {
				if (loadingStatus && config.loading) {
					uni.hideLoading();
				}
				loadingStatus = false;
			}
		})
	});
}
export default request;
